﻿using System;
using System.Collections;
using System.Collections.Generic;
using CMS.Core.Domain;

namespace CMS.Core.DataInterfaces
{
    /// <summary>
    /// Since this extends the <see cref="IDao{TypeOfListItem, IdT}" /> behavior, it's a good idea to 
    /// place it in its own file for manageability.  In this way, it can grow further without
    /// cluttering up <see cref="IDaoFactory" />.
    /// </summary>
    public interface IChucNangDao : IDao<ChucNang, System.Int32>
    {
        /// <summary>
        /// Lấy danh sách các chức năng trên menu ngang (Danh mục, VB đến, VB đi)
        /// </summary>
        /// <returns></returns>
        List<ChucNang> GetChucNangMenuNgang();

        /// <summary>
        /// Lấy tất cả các chứng năng của 1 người sử dụng và quyền tương ứng
        /// </summary>
        /// <param name="maNguoiSuDung"></param>
        /// <returns></returns>
        IList GetAllChucNang(String maNguoiSuDung);

        /// <summary>
        /// Lấy các chức năng cho menu trinh diễn
        /// </summary>
        /// <returns></returns>
        IList GetAllViews();

        /// <summary>
        /// Lấy tất cả các chức năng của 1 nhóm người sử dụng
        /// </summary>
        /// <param name="maNhom"></param>
        /// <returns></returns>
        List<ChucNang> GetChucNangOfNhomNguoiSuDung(int maNhom);

        /// <summary>
        /// Lấy các chức năng không thuộc nhóm người sử dụng
        /// </summary>
        /// <param name="maNhom"></param>
        /// <returns></returns>
        List<ChucNang> GetChucNangKhongThuocNhom(int maNhom);
    }
}
